package com.zw.a.basic.a10.demo03_listiterator;

import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;

//案例: 演示并发修改异常的解决方案3.
//细节: CopyOnWriteArrayList集合的底层已经自动帮我们解决了并发修改异常, 我们直接使用该集合即可.
public class Demo03 {
    public static void main(String[] args) {
        //需求: 通过CopyOnWriteArrayList集合解决并发修改异常.
        CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
        list.add("hello");
        list.add("world");
        list.add("java");

        //使用普通的列表迭代器.
        Iterator<String> it = list.iterator();
        while(it.hasNext()) {
            String s = it.next();
            //判断是否是"world", 如果是, 就添加"JavaEE"
            if ("world".equals(s)) {
                list.add("JavaEE");   //并发
            }
        }

        //打印集合
        System.out.println("list: " + list);
    }
}
